home *** CD-ROM | disk | FTP | other *** search
/ Group 42-Sells Out! - The Information Archive / Group 42 Sells Out (Group 42) (1996).iso / crypto / skipjack / s1.txt < prev    next >
Text File  |  1995-11-16  |  37KB  |  1,848 lines

  1. ========
  2.  
  3. What's this S-1 cipher algorithm??  The frequent use of the word
  4. 'chip' might indicate that it has something to do with clipper???
  5. Or is it a hoax?
  6.  
  7. Frank
  8.  
  9.  
  10. anon-remailer@utopia.hacktic.nl (Anonymous) writes:
  11.  
  12. >it was on a floppy i got in the mail last week:
  13.  
  14. >/* TOP SECRET                                                    */
  15. >/* See label file for codeword restrictions                      */
  16.  
  17. >/*****************************************************************/
  18. >/* TOP SECRET                                                    */
  19. >/* See label file for codeword restrictions                      */
  20. >/*                                                               */
  21. >/* S-1 CIPHER ALGORITHM software chip simulator                  */
  22. >/*                                                               */
  23. >/* NOT INTENDED FOR EXTERNAL, PRODUCTION, OR CONTRACTOR USE OR   */
  24. >/* DISCLOSURE.                                                   */
  25. >/* NOT CERTIFIED OR APPROVED FOR USE AS REFERENCE.               */
  26. >/* FOR SECONDARY ANALYTIC USE ONLY.                              */
  27. >/*                                                               */
  28. >/* Basic chip functions. Block encryption methods are not        */
  29. >/* implemented.                                                  */
  30. >/*                                                               */
  31. >/* SOFTWARE HISTORY:                                             */
  32. >/* 1 FEBRUARY 1989 --- Submitted to source control.              */
  33. >/* 31 JULY 1991 --- Moved UFV support into basic functions.      */
  34. >/*                                                               */
  35. >/* TOP SECRET                                                    */
  36. >/* See label file for codeword restrictions                      */
  37. >/*****************************************************************/
  38.  
  39.  
  40. >/* local declarations are for ANSI C */
  41. >#include <stdio.h>
  42. >#include <sys/types.h>
  43.  
  44. >/* S-1 F table - these differ in the S-2 version */
  45. >static u_char F[4][256];
  46. >/* S-1 F selection (G) table */
  47. >static u_char G[2][256];
  48.  
  49. >/* exported interface */
  50.  
  51. >int S1_self_check(void);
  52. >int S1_zeroize(void);
  53. >int S1_load_key(int, u_char *);
  54. >int S1_encrypt_block(int, u_char *);
  55. >int S1_decrypt_block(int, u_char *);
  56. >int S1_create_key(u_char *, u_char *);
  57.  
  58.  
  59. >/* local functions */
  60. >static void f_initialize(void);
  61. >static void rotatekey(int, u_char *);
  62. >static u_char f(int,int);
  63. >static u_char g(int,int);
  64.  
  65.  
  66. >/* CHIP PARAMETERS */
  67.  
  68. >#define KEYGEN_CHIP 1 /* delete this to simulate operational chipsets */
  69. >#define KEY_REGISTERS 4
  70. >#define INTEGRITY KEY_REGISTERS
  71.  
  72. >/* user family vectors (UFV) */
  73. >static u_char clear_family[8] = {129,3,5,7,2,4,6,131};
  74. >static u_char cipher_family[8] = {1,254,253,252,128,129,130,8};
  75.  
  76. >static u_char key_integrity_key[10] = {0,0,0,0,0,0,0,0,0,0};
  77.  
  78. >static u_char key[KEY_REGISTERS+1][10];
  79. >static u_char fullkey[KEY_REGISTERS+1][32][6];  /* SOFTWARE ONLY */
  80.  
  81. >static int initialized=0;
  82.  
  83. >/* EXPORTED SIMULATED CHIP INTERFACE */
  84. >/* SEE NOTES FOR INTERFACE DESCRIPTIONS */
  85.  
  86.  
  87. >int S1_self_check()
  88. >{
  89. >    f_initialize();
  90. >    rotatekey(INTEGRITY,key_integrity_key);
  91. >    initialized=1;
  92. >    return 0;
  93. >}
  94.  
  95.  
  96. >int S1_zeroize()
  97. >{
  98. >    int i, j, k;
  99.  
  100. >    i=0;
  101. >    while (i<KEY_REGISTERS+1) {
  102. >        j=0;
  103. >        while (j<10) {
  104. >            key[i][j] = 0;
  105. >            j=j+1;
  106. >        }
  107. >        j=0;
  108. >        while (j<32) {
  109. >            k=0;
  110. >            while (k<6) {
  111. >                fullkey[i][j][k] = 0;
  112. >                k++;
  113. >            }
  114. >            j=j+1;
  115. >        }
  116. >        i=i+1;
  117. >    }
  118. >    i=0;
  119. >    while (i<4) {
  120. >        j=0;
  121. >        while (j<256) {
  122. >            F[i][j] = 0;
  123. >            j++;
  124. >        }
  125. >        i++;
  126. >    }
  127. >    return 0;
  128. >}
  129. >    
  130.  
  131.  
  132. >int S1_load_key(int key_register, u_char *key_vector)
  133. >{
  134. >    u_char key_buffer[12];
  135. >    
  136. >    if (initialized == 0)
  137. >        return 1;
  138. >    if ((key_register < 0) || (key_register >= KEY_REGISTERS))
  139. >        return 9;
  140. >    memcpy(key_buffer,key_vector,12);
  141. >    S1_decrypt_block(INTEGRITY,key_buffer);
  142. >    S1_decrypt_block(INTEGRITY,key_buffer+4);
  143. >    if ((key_buffer[10] != 0) || (key_buffer[11] != 0))
  144. >        return 2;
  145. >    rotatekey(key_register,key_buffer);
  146. >    memcpy(key[key_register],key_buffer,10);
  147. >    return 0;
  148. >}
  149.  
  150.  
  151. >int S1_encrypt_block(int key_register, u_char *block)
  152. >{
  153. >    int r, startf, i;
  154. >    
  155. >    if (initialized == 0)
  156. >        return 1;
  157. >    i=0;
  158. >    while (i<8) {
  159. >        block[i] = block[i] ^ clear_family[i];
  160. >        i=i+1;
  161. >    }
  162. >    i=0;
  163. >    while (i<32) {
  164. >        r=i*2;
  165. >        startf = g(0,fullkey[key_register][r][0] ^ block[(r+4) % 8])
  166. >               + g(1,fullkey[key_register][r][1] ^ block[(r+5) % 8])*2;
  167. >        block[(r+6) % 8] = block[(r+6) % 8]
  168. >                   ^ f(((startf+0) % 4),
  169. >                   fullkey[key_register][r][2]
  170. >                 ^ block[(r+2) % 8]);
  171. >        block[(r+6) % 8] = block[(r+6) % 8]
  172. >                   ^ (f(((startf+1) % 4),
  173. >                   fullkey[key_register][r][3]
  174. >                 ^ block[(r+3) % 8]) << 4);    
  175. >        block[(r+7) % 8] = block[(r+7) % 8]
  176. >                   ^ f(((startf+2) % 4),
  177. >                   fullkey[key_register][r][4]
  178. >                 ^ block[(r+0) % 8]);
  179. >        block[(r+7) % 8] = block[(r+7) % 8]
  180. >                   ^ (f(((startf+3) % 4),
  181. >                   fullkey[key_register][r][5]
  182. >                 ^ block[(r+1) % 8]) << 4);
  183. >        i = i+1;
  184. >    }
  185. >    i=0;
  186. >    while (i<8) {
  187. >        block[i] = block[i] ^ cipher_family[i];
  188. >        i=i+1;
  189. >    }
  190. >    return 0;
  191. >}
  192.  
  193.  
  194. >int S1_decrypt_block(int key_register, u_char *block)
  195. >{
  196. >    int r, startf, i;
  197. >    
  198. >    if (initialized == 0)
  199. >        return 1;
  200. >    i=0;
  201. >    while (i<8) {
  202. >        block[i] = block[i] ^ cipher_family[i];
  203. >        i=i+1;
  204. >    }
  205. >    i=32;
  206. >    while (i>0) {
  207. >        i = i-1;
  208. >        r=i*2;
  209. >        startf = g(0,fullkey[key_register][r][0] ^ block[(r+4) % 8])
  210. >               + g(1,fullkey[key_register][r][1] ^ block[(r+5) % 8])*2;
  211. >        block[(r+6) % 8] = block[(r+6) % 8]
  212. >                   ^ f(((startf+0) % 4),
  213. >                   fullkey[key_register][r][2]
  214. >                 ^ block[(r+2) % 8]);
  215. >        block[(r+6) % 8] = block[(r+6) % 8]
  216. >                   ^ (f(((startf+1) % 4),
  217. >                   fullkey[key_register][r][3]
  218. >                 ^ block[(r+3) % 8]) << 4);    
  219. >        block[(r+7) % 8] = block[(r+7) % 8]
  220. >                   ^ f(((startf+2) % 4),
  221. >                   fullkey[key_register][r][4]
  222. >                 ^ block[(r+0) % 8]);
  223. >        block[(r+7) % 8] = block[(r+7) % 8]
  224. >                   ^ (f(((startf+3) % 4),
  225. >                   fullkey[key_register][r][5]
  226. >                 ^ block[(r+1) % 8]) << 4);
  227. >    }
  228. >    i=0;
  229. >    while (i<8) {
  230. >        block[i] = block[i] ^ clear_family[i];
  231. >        i=i+1;
  232. >    }
  233. >    return 0;
  234. >}
  235.  
  236.  
  237. >#ifdef KEYGEN_CHIP
  238. >/* WARNING: this feature is not implemented on all chip sets */
  239. >int S1_create_key(u_char *key_value, u_char *key_vector)
  240. >{
  241. >    if (initialized == 0)
  242. >        return 1;
  243. >    memcpy(key_vector,key_value,10);
  244. >    key_vector[10] = 0;
  245. >    key_vector[11] = 0;
  246. >    S1_encrypt_block(INTEGRITY,key_vector+4);
  247. >    S1_encrypt_block(INTEGRITY,key_vector);
  248. >    return 0;
  249. >}
  250. >#else
  251. >int S1_create_key(u_char *key_value, u_char *key_vector)
  252. >{
  253. >    return 7;
  254. >}
  255. >#endif
  256.  
  257.  
  258. >/* SUPPORT FUNCTIONS */
  259.  
  260.  
  261. >static void
  262. >rotatekey(int key_register, u_char *key_value)
  263. >{
  264. >    int i, j;
  265. >    int jshift[6] = {5, 8, 3, 1, 4, 0};
  266.  
  267. >    key_register = key_register % KEY_REGISTERS;
  268. >    i=0;
  269. >    while (i<32) {
  270. >        j=0;
  271. >        while (j<6) {
  272. >            fullkey[key_register][i][j] =
  273. >                f(0,(key_value[(i*6+j+jshift[j]) % 10]))
  274. >              ^ f(1,(key_value[(i*6+j+jshift[(j+1)%6]) % 10]))
  275. >              ^ (f(2,(key_value[(i*6+j+jshift[(j+2)%6]) % 10]))<<4)
  276. >              ^ (f(3,(key_value[(i*6+j+jshift[(j+3)%6]) % 10]))<<4);
  277. >            j=j+1;
  278. >        }
  279. >        i=i+1;
  280. >    }
  281. >}
  282.  
  283. >static void f_initialize() {
  284. >    /* NON-LINEAR (F0, F1, F2, F3) */
  285. >    F[0][0] = 07;
  286. >    F[0][1] = 02;
  287. >    F[0][2] = 011;
  288. >    F[0][3] = 014;
  289. >    F[0][4] = 010;
  290. >    F[0][5] = 016;
  291. >    F[0][6] = 01;
  292. >    F[0][7] = 06;
  293. >    F[0][8] = 015;
  294. >    F[0][9] = 02;
  295. >    F[0][10] = 00;
  296. >    F[0][11] = 04;
  297. >    F[0][12] = 017;
  298. >    F[0][13] = 07;
  299. >    F[0][14] = 03;
  300. >    F[0][15] = 017;
  301. >    F[0][16] = 010;
  302. >    F[0][17] = 017;
  303. >    F[0][18] = 012;
  304. >    F[0][19] = 05;
  305. >    F[0][20] = 013;
  306. >    F[0][21] = 00;
  307. >    F[0][22] = 017;
  308. >    F[0][23] = 02;
  309. >    F[0][24] = 05;
  310. >    F[0][25] = 015;
  311. >    F[0][26] = 017;
  312. >    F[0][27] = 017;
  313. >    F[0][28] = 011;
  314. >    F[0][29] = 011;
  315. >    F[0][30] = 06;
  316. >    F[0][31] = 014;
  317. >    F[0][32] = 07;
  318. >    F[0][33] = 017;
  319. >    F[0][34] = 012;
  320. >    F[0][35] = 016;
  321. >    F[0][36] = 012;
  322. >    F[0][37] = 06;
  323. >    F[0][38] = 04;
  324. >    F[0][39] = 04;
  325. >    F[0][40] = 014;
  326. >    F[0][41] = 04;
  327. >    F[0][42] = 017;
  328. >    F[0][43] = 013;
  329. >    F[0][44] = 03;
  330. >    F[0][45] = 014;
  331. >    F[0][46] = 014;
  332. >    F[0][47] = 06;
  333. >    F[0][48] = 06;
  334. >    F[0][49] = 00;
  335. >    F[0][50] = 02;
  336. >    F[0][51] = 010;
  337. >    F[0][52] = 012;
  338. >    F[0][53] = 012;
  339. >    F[0][54] = 03;
  340. >    F[0][55] = 015;
  341. >    F[0][56] = 013;
  342. >    F[0][57] = 014;
  343. >    F[0][58] = 017;
  344. >    F[0][59] = 05;
  345. >    F[0][60] = 05;
  346. >    F[0][61] = 00;
  347. >    F[0][62] = 07;
  348. >    F[0][63] = 014;
  349. >    F[0][64] = 016;
  350. >    F[0][65] = 011;
  351. >    F[0][66] = 03;
  352. >    F[0][67] = 011;
  353. >    F[0][68] = 010;
  354. >    F[0][69] = 014;
  355. >    F[0][70] = 012;
  356. >    F[0][71] = 014;
  357. >    F[0][72] = 017;
  358. >    F[0][73] = 05;
  359. >    F[0][74] = 07;
  360. >    F[0][75] = 05;
  361. >    F[0][76] = 07;
  362. >    F[0][77] = 016;
  363. >    F[0][78] = 03;
  364. >    F[0][79] = 02;
  365. >    F[0][80] = 011;
  366. >    F[0][81] = 014;
  367. >    F[0][82] = 04;
  368. >    F[0][83] = 00;
  369. >    F[0][84] = 010;
  370. >    F[0][85] = 016;
  371. >    F[0][86] = 02;
  372. >    F[0][87] = 03;
  373. >    F[0][88] = 02;
  374. >    F[0][89] = 016;
  375. >    F[0][90] = 013;
  376. >    F[0][91] = 04;
  377. >    F[0][92] = 010;
  378. >    F[0][93] = 01;
  379. >    F[0][94] = 06;
  380. >    F[0][95] = 013;
  381. >    F[0][96] = 016;
  382. >    F[0][97] = 010;
  383. >    F[0][98] = 017;
  384. >    F[0][99] = 014;
  385. >    F[0][100] = 00;
  386. >    F[0][101] = 02;
  387. >    F[0][102] = 00;
  388. >    F[0][103] = 01;
  389. >    F[0][104] = 01;
  390. >    F[0][105] = 013;
  391. >    F[0][106] = 016;
  392. >    F[0][107] = 00;
  393. >    F[0][108] = 02;
  394. >    F[0][109] = 013;
  395. >    F[0][110] = 017;
  396. >    F[0][111] = 013;
  397. >    F[0][112] = 016;
  398. >    F[0][113] = 016;
  399. >    F[0][114] = 02;
  400. >    F[0][115] = 05;
  401. >    F[0][116] = 02;
  402. >    F[0][117] = 00;
  403. >    F[0][118] = 016;
  404. >    F[0][119] = 01;
  405. >    F[0][120] = 010;
  406. >    F[0][121] = 013;
  407. >    F[0][122] = 011;
  408. >    F[0][123] = 06;
  409. >    F[0][124] = 01;
  410. >    F[0][125] = 05;
  411. >    F[0][126] = 07;
  412. >    F[0][127] = 07;
  413. >    F[0][128] = 016;
  414. >    F[0][129] = 014;
  415. >    F[0][130] = 012;
  416. >    F[0][131] = 011;
  417. >    F[0][132] = 011;
  418. >    F[0][133] = 016;
  419. >    F[0][134] = 07;
  420. >    F[0][135] = 014;
  421. >    F[0][136] = 011;
  422. >    F[0][137] = 015;
  423. >    F[0][138] = 012;
  424. >    F[0][139] = 00;
  425. >    F[0][140] = 010;
  426. >    F[0][141] = 00;
  427. >    F[0][142] = 07;
  428. >    F[0][143] = 012;
  429. >    F[0][144] = 015;
  430. >    F[0][145] = 013;
  431. >    F[0][146] = 00;
  432. >    F[0][147] = 012;
  433. >    F[0][148] = 04;
  434. >    F[0][149] = 017;
  435. >    F[0][150] = 05;
  436. >    F[0][151] = 00;
  437. >    F[0][152] = 015;
  438. >    F[0][153] = 02;
  439. >    F[0][154] = 016;
  440. >    F[0][155] = 03;
  441. >    F[0][156] = 03;
  442. >    F[0][157] = 013;
  443. >    F[0][158] = 06;
  444. >    F[0][159] = 011;
  445. >    F[0][160] = 014;
  446. >    F[0][161] = 03;
  447. >    F[0][162] = 017;
  448. >    F[0][163] = 014;
  449. >    F[0][164] = 00;
  450. >    F[0][165] = 013;
  451. >    F[0][166] = 06;
  452. >    F[0][167] = 017;
  453. >    F[0][168] = 010;
  454. >    F[0][169] = 015;
  455. >    F[0][170] = 01;
  456. >    F[0][171] = 012;
  457. >    F[0][172] = 05;
  458. >    F[0][173] = 010;
  459. >    F[0][174] = 06;
  460. >    F[0][175] = 07;
  461. >    F[0][176] = 06;
  462. >    F[0][177] = 03;
  463. >    F[0][178] = 017;
  464. >    F[0][179] = 06;
  465. >    F[0][180] = 015;
  466. >    F[0][181] = 015;
  467. >    F[0][182] = 01;
  468. >    F[0][183] = 013;
  469. >    F[0][184] = 04;
  470. >    F[0][185] = 012;
  471. >    F[0][186] = 03;
  472. >    F[0][187] = 00;
  473. >    F[0][188] = 06;
  474. >    F[0][189] = 011;
  475. >    F[0][190] = 011;
  476. >    F[0][191] = 015;
  477. >    F[0][192] = 012;
  478. >    F[0][193] = 017;
  479. >    F[0][194] = 016;
  480. >    F[0][195] = 01;
  481. >    F[0][196] = 015;
  482. >    F[0][197] = 016;
  483. >    F[0][198] = 017;
  484. >    F[0][199] = 04;
  485. >    F[0][200] = 015;
  486. >    F[0][201] = 06;
  487. >    F[0][202] = 07;
  488. >    F[0][203] = 04;
  489. >    F[0][204] = 00;
  490. >    F[0][205] = 017;
  491. >    F[0][206] = 016;
  492. >    F[0][207] = 017;
  493. >    F[0][208] = 010;
  494. >    F[0][209] = 02;
  495. >    F[0][210] = 04;
  496. >    F[0][211] = 012;
  497. >    F[0][212] = 01;
  498. >    F[0][213] = 02;
  499. >    F[0][214] = 011;
  500. >    F[0][215] = 07;
  501. >    F[0][216] = 010;
  502. >    F[0][217] = 010;
  503. >    F[0][218] = 02;
  504. >    F[0][219] = 02;
  505. >    F[0][220] = 07;
  506. >    F[0][221] = 010;
  507. >    F[0][222] = 010;
  508. >    F[0][223] = 013;
  509. >    F[0][224] = 03;
  510. >    F[0][225] = 016;
  511. >    F[0][226] = 017;
  512. >    F[0][227] = 011;
  513. >    F[0][228] = 06;
  514. >    F[0][229] = 011;
  515. >    F[0][230] = 00;
  516. >    F[0][231] = 017;
  517. >    F[0][232] = 014;
  518. >    F[0][233] = 06;
  519. >    F[0][234] = 04;
  520. >    F[0][235] = 02;
  521. >    F[0][236] = 03;
  522. >    F[0][237] = 00;
  523. >    F[0][238] = 011;
  524. >    F[0][239] = 013;
  525. >    F[0][240] = 014;
  526. >    F[0][241] = 05;
  527. >    F[0][242] = 03;
  528. >    F[0][243] = 016;
  529. >    F[0][244] = 013;
  530. >    F[0][245] = 017;
  531. >    F[0][246] = 04;
  532. >    F[0][247] = 05;
  533. >    F[0][248] = 017;
  534. >    F[0][249] = 011;
  535. >    F[0][250] = 03;
  536. >    F[0][251] = 06;
  537. >    F[0][252] = 010;
  538. >    F[0][253] = 013;
  539. >    F[0][254] = 014;
  540. >    F[0][255] = 06;
  541. >    F[1][0] = 017;
  542. >    F[1][1] = 06;
  543. >    F[1][2] = 016;
  544. >    F[1][3] = 015;
  545. >    F[1][4] = 012;
  546. >    F[1][5] = 07;
  547. >    F[1][6] = 07;
  548. >    F[1][7] = 03;
  549. >    F[1][8] = 03;
  550. >    F[1][9] = 01;
  551. >    F[1][10] = 017;
  552. >    F[1][11] = 00;
  553. >    F[1][12] = 013;
  554. >    F[1][13] = 07;
  555. >    F[1][14] = 02;
  556. >    F[1][15] = 010;
  557. >    F[1][16] = 01;
  558. >    F[1][17] = 014;
  559. >    F[1][18] = 012;
  560. >    F[1][19] = 01;
  561. >    F[1][20] = 07;
  562. >    F[1][21] = 03;
  563. >    F[1][22] = 01;
  564. >    F[1][23] = 016;
  565. >    F[1][24] = 014;
  566. >    F[1][25] = 011;
  567. >    F[1][26] = 00;
  568. >    F[1][27] = 01;
  569. >    F[1][28] = 06;
  570. >    F[1][29] = 02;
  571. >    F[1][30] = 011;
  572. >    F[1][31] = 013;
  573. >    F[1][32] = 014;
  574. >    F[1][33] = 011;
  575. >    F[1][34] = 07;
  576. >    F[1][35] = 012;
  577. >    F[1][36] = 03;
  578. >    F[1][37] = 03;
  579. >    F[1][38] = 010;
  580. >    F[1][39] = 00;
  581. >    F[1][40] = 00;
  582. >    F[1][41] = 012;
  583. >    F[1][42] = 04;
  584. >    F[1][43] = 00;
  585. >    F[1][44] = 02;
  586. >    F[1][45] = 017;
  587. >    F[1][46] = 015;
  588. >    F[1][47] = 013;
  589. >    F[1][48] = 02;
  590. >    F[1][49] = 017;
  591. >    F[1][50] = 05;
  592. >    F[1][51] = 04;
  593. >    F[1][52] = 03;
  594. >    F[1][53] = 013;
  595. >    F[1][54] = 017;
  596. >    F[1][55] = 03;
  597. >    F[1][56] = 011;
  598. >    F[1][57] = 012;
  599. >    F[1][58] = 01;
  600. >    F[1][59] = 011;
  601. >    F[1][60] = 07;
  602. >    F[1][61] = 011;
  603. >    F[1][62] = 011;
  604. >    F[1][63] = 010;
  605. >    F[1][64] = 01;
  606. >    F[1][65] = 05;
  607. >    F[1][66] = 02;
  608. >    F[1][67] = 03;
  609. >    F[1][68] = 010;
  610. >    F[1][69] = 017;
  611. >    F[1][70] = 07;
  612. >    F[1][71] = 012;
  613. >    F[1][72] = 015;
  614. >    F[1][73] = 011;
  615. >    F[1][74] = 010;
  616. >    F[1][75] = 017;
  617. >    F[1][76] = 03;
  618. >    F[1][77] = 016;
  619. >    F[1][78] = 03;
  620. >    F[1][79] = 015;
  621. >    F[1][80] = 011;
  622. >    F[1][81] = 013;
  623. >    F[1][82] = 05;
  624. >    F[1][83] = 07;
  625. >    F[1][84] = 017;
  626. >    F[1][85] = 012;
  627. >    F[1][86] = 012;
  628. >    F[1][87] = 07;
  629. >    F[1][88] = 017;
  630. >    F[1][89] = 05;
  631. >    F[1][90] = 07;
  632. >    F[1][91] = 00;
  633. >    F[1][92] = 04;
  634. >    F[1][93] = 04;
  635. >    F[1][94] = 04;
  636. >    F[1][95] = 06;
  637. >    F[1][96] = 011;
  638. >    F[1][97] = 04;
  639. >    F[1][98] = 07;
  640. >    F[1][99] = 010;
  641. >    F[1][100] = 010;
  642. >    F[1][101] = 015;
  643. >    F[1][102] = 017;
  644. >    F[1][103] = 00;
  645. >    F[1][104] = 012;
  646. >    F[1][105] = 02;
  647. >    F[1][106] = 01;
  648. >    F[1][107] = 016;
  649. >    F[1][108] = 00;
  650. >    F[1][109] = 05;
  651. >    F[1][110] = 03;
  652. >    F[1][111] = 011;
  653. >    F[1][112] = 05;
  654. >    F[1][113] = 014;
  655. >    F[1][114] = 011;
  656. >    F[1][115] = 00;
  657. >    F[1][116] = 011;
  658. >    F[1][117] = 00;
  659. >    F[1][118] = 013;
  660. >    F[1][119] = 010;
  661. >    F[1][120] = 016;
  662. >    F[1][121] = 014;
  663. >    F[1][122] = 04;
  664. >    F[1][123] = 03;
  665. >    F[1][124] = 015;
  666. >    F[1][125] = 016;
  667. >    F[1][126] = 02;
  668. >    F[1][127] = 03;
  669. >    F[1][128] = 012;
  670. >    F[1][129] = 06;
  671. >    F[1][130] = 017;
  672. >    F[1][131] = 00;
  673. >    F[1][132] = 011;
  674. >    F[1][133] = 011;
  675. >    F[1][134] = 02;
  676. >    F[1][135] = 017;
  677. >    F[1][136] = 013;
  678. >    F[1][137] = 04;
  679. >    F[1][138] = 07;
  680. >    F[1][139] = 02;
  681. >    F[1][140] = 02;
  682. >    F[1][141] = 014;
  683. >    F[1][142] = 04;
  684. >    F[1][143] = 07;
  685. >    F[1][144] = 014;
  686. >    F[1][145] = 01;
  687. >    F[1][146] = 00;
  688. >    F[1][147] = 03;
  689. >    F[1][148] = 01;
  690. >    F[1][149] = 010;
  691. >    F[1][150] = 01;
  692. >    F[1][151] = 07;
  693. >    F[1][152] = 012;
  694. >    F[1][153] = 00;
  695. >    F[1][154] = 015;
  696. >    F[1][155] = 04;
  697. >    F[1][156] = 00;
  698. >    F[1][157] = 017;
  699. >    F[1][158] = 04;
  700. >    F[1][159] = 00;
  701. >    F[1][160] = 017;
  702. >    F[1][161] = 014;
  703. >    F[1][162] = 04;
  704. >    F[1][163] = 07;
  705. >    F[1][164] = 013;
  706. >    F[1][165] = 011;
  707. >    F[1][166] = 012;
  708. >    F[1][167] = 017;
  709. >    F[1][168] = 017;
  710. >    F[1][169] = 03;
  711. >    F[1][170] = 07;
  712. >    F[1][171] = 00;
  713. >    F[1][172] = 04;
  714. >    F[1][173] = 07;
  715. >    F[1][174] = 07;
  716. >    F[1][175] = 03;
  717. >    F[1][176] = 05;
  718. >    F[1][177] = 06;
  719. >    F[1][178] = 017;
  720. >    F[1][179] = 03;
  721. >    F[1][180] = 017;
  722. >    F[1][181] = 02;
  723. >    F[1][182] = 04;
  724. >    F[1][183] = 017;
  725. >    F[1][184] = 00;
  726. >    F[1][185] = 014;
  727. >    F[1][186] = 017;
  728. >    F[1][187] = 04;
  729. >    F[1][188] = 05;
  730. >    F[1][189] = 016;
  731. >    F[1][190] = 015;
  732. >    F[1][191] = 04;
  733. >    F[1][192] = 012;
  734. >    F[1][193] = 013;
  735. >    F[1][194] = 00;
  736. >    F[1][195] = 04;
  737. >    F[1][196] = 017;
  738. >    F[1][197] = 07;
  739. >    F[1][198] = 013;
  740. >    F[1][199] = 04;
  741. >    F[1][200] = 010;
  742. >    F[1][201] = 05;
  743. >    F[1][202] = 07;
  744. >    F[1][203] = 04;
  745. >    F[1][204] = 013;
  746. >    F[1][205] = 05;
  747. >    F[1][206] = 016;
  748. >    F[1][207] = 010;
  749. >    F[1][208] = 015;
  750. >    F[1][209] = 00;
  751. >    F[1][210] = 04;
  752. >    F[1][211] = 04;
  753. >    F[1][212] = 017;
  754. >    F[1][213] = 010;
  755. >    F[1][214] = 05;
  756. >    F[1][215] = 015;
  757. >    F[1][216] = 011;
  758. >    F[1][217] = 01;
  759. >    F[1][218] = 012;
  760. >    F[1][219] = 013;
  761. >    F[1][220] = 015;
  762. >    F[1][221] = 03;
  763. >    F[1][222] = 010;
  764. >    F[1][223] = 05;
  765. >    F[1][224] = 07;
  766. >    F[1][225] = 06;
  767. >    F[1][226] = 00;
  768. >    F[1][227] = 02;
  769. >    F[1][228] = 011;
  770. >    F[1][229] = 06;
  771. >    F[1][230] = 00;
  772. >    F[1][231] = 017;
  773. >    F[1][232] = 01;
  774. >    F[1][233] = 010;
  775. >    F[1][234] = 03;
  776. >    F[1][235] = 06;
  777. >    F[1][236] = 05;
  778. >    F[1][237] = 010;
  779. >    F[1][238] = 010;
  780. >    F[1][239] = 012;
  781. >    F[1][240] = 014;
  782. >    F[1][241] = 02;
  783. >    F[1][242] = 02;
  784. >    F[1][243] = 02;
  785. >    F[1][244] = 010;
  786. >    F[1][245] = 04;
  787. >    F[1][246] = 013;
  788. >    F[1][247] = 07;
  789. >    F[1][248] = 016;
  790. >    F[1][249] = 015;
  791. >    F[1][250] = 05;
  792. >    F[1][251] = 017;
  793. >    F[1][252] = 05;
  794. >    F[1][253] = 03;
  795. >    F[1][254] = 010;
  796. >    F[1][255] = 010;
  797. >    F[2][0] = 013;
  798. >    F[2][1] = 011;
  799. >    F[2][2] = 017;
  800. >    F[2][3] = 07;
  801. >    F[2][4] = 01;
  802. >    F[2][5] = 012;
  803. >    F[2][6] = 00;
  804. >    F[2][7] = 011;
  805. >    F[2][8] = 06;
  806. >    F[2][9] = 010;
  807. >    F[2][10] = 012;
  808. >    F[2][11] = 014;
  809. >    F[2][12] = 00;
  810. >    F[2][13] = 012;
  811. >    F[2][14] = 01;
  812. >    F[2][15] = 012;
  813. >    F[2][16] = 011;
  814. >    F[2][17] = 014;
  815. >    F[2][18] = 05;
  816. >    F[2][19] = 05;
  817. >    F[2][20] = 07;
  818. >    F[2][21] = 04;
  819. >    F[2][22] = 013;
  820. >    F[2][23] = 015;
  821. >    F[2][24] = 04;
  822. >    F[2][25] = 00;
  823. >    F[2][26] = 01;
  824. >    F[2][27] = 010;
  825. >    F[2][28] = 017;
  826. >    F[2][29] = 02;
  827. >    F[2][30] = 015;
  828. >    F[2][31] = 012;
  829. >    F[2][32] = 06;
  830. >    F[2][33] = 00;
  831. >    F[2][34] = 07;
  832. >    F[2][35] = 017;
  833. >    F[2][36] = 014;
  834. >    F[2][37] = 013;
  835. >    F[2][38] = 011;
  836. >    F[2][39] = 03;
  837. >    F[2][40] = 07;
  838. >    F[2][41] = 013;
  839. >    F[2][42] = 06;
  840. >    F[2][43] = 05;
  841. >    F[2][44] = 011;
  842. >    F[2][45] = 010;
  843. >    F[2][46] = 00;
  844. >    F[2][47] = 02;
  845. >    F[2][48] = 07;
  846. >    F[2][49] = 011;
  847. >    F[2][50] = 016;
  848. >    F[2][51] = 01;
  849. >    F[2][52] = 012;
  850. >    F[2][53] = 014;
  851. >    F[2][54] = 012;
  852. >    F[2][55] = 06;
  853. >    F[2][56] = 011;
  854. >    F[2][57] = 016;
  855. >    F[2][58] = 015;
  856. >    F[2][59] = 06;
  857. >    F[2][60] = 07;
  858. >    F[2][61] = 05;
  859. >    F[2][62] = 014;
  860. >    F[2][63] = 07;
  861. >    F[2][64] = 01;
  862. >    F[2][65] = 06;
  863. >    F[2][66] = 012;
  864. >    F[2][67] = 06;
  865. >    F[2][68] = 05;
  866. >    F[2][69] = 04;
  867. >    F[2][70] = 03;
  868. >    F[2][71] = 011;
  869. >    F[2][72] = 04;
  870. >    F[2][73] = 014;
  871. >    F[2][74] = 013;
  872. >    F[2][75] = 00;
  873. >    F[2][76] = 010;
  874. >    F[2][77] = 016;
  875. >    F[2][78] = 03;
  876. >    F[2][79] = 06;
  877. >    F[2][80] = 00;
  878. >    F[2][81] = 017;
  879. >    F[2][82] = 02;
  880. >    F[2][83] = 010;
  881. >    F[2][84] = 010;
  882. >    F[2][85] = 012;
  883. >    F[2][86] = 012;
  884. >    F[2][87] = 017;
  885. >    F[2][88] = 07;
  886. >    F[2][89] = 03;
  887. >    F[2][90] = 012;
  888. >    F[2][91] = 012;
  889. >    F[2][92] = 013;
  890. >    F[2][93] = 014;
  891. >    F[2][94] = 013;
  892. >    F[2][95] = 03;
  893. >    F[2][96] = 011;
  894. >    F[2][97] = 012;
  895. >    F[2][98] = 06;
  896. >    F[2][99] = 02;
  897. >    F[2][100] = 02;
  898. >    F[2][101] = 02;
  899. >    F[2][102] = 011;
  900. >    F[2][103] = 04;
  901. >    F[2][104] = 06;
  902. >    F[2][105] = 010;
  903. >    F[2][106] = 05;
  904. >    F[2][107] = 01;
  905. >    F[2][108] = 016;
  906. >    F[2][109] = 07;
  907. >    F[2][110] = 017;
  908. >    F[2][111] = 00;
  909. >    F[2][112] = 013;
  910. >    F[2][113] = 012;
  911. >    F[2][114] = 016;
  912. >    F[2][115] = 07;
  913. >    F[2][116] = 016;
  914. >    F[2][117] = 01;
  915. >    F[2][118] = 04;
  916. >    F[2][119] = 015;
  917. >    F[2][120] = 07;
  918. >    F[2][121] = 014;
  919. >    F[2][122] = 00;
  920. >    F[2][123] = 04;
  921. >    F[2][124] = 06;
  922. >    F[2][125] = 016;
  923. >    F[2][126] = 011;
  924. >    F[2][127] = 014;
  925. >    F[2][128] = 06;
  926. >    F[2][129] = 011;
  927. >    F[2][130] = 012;
  928. >    F[2][131] = 02;
  929. >    F[2][132] = 012;
  930. >    F[2][133] = 016;
  931. >    F[2][134] = 013;
  932. >    F[2][135] = 00;
  933. >    F[2][136] = 00;
  934. >    F[2][137] = 03;
  935. >    F[2][138] = 03;
  936. >    F[2][139] = 015;
  937. >    F[2][140] = 07;
  938. >    F[2][141] = 012;
  939. >    F[2][142] = 00;
  940. >    F[2][143] = 012;
  941. >    F[2][144] = 017;
  942. >    F[2][145] = 011;
  943. >    F[2][146] = 05;
  944. >    F[2][147] = 05;
  945. >    F[2][148] = 010;
  946. >    F[2][149] = 04;
  947. >    F[2][150] = 04;
  948. >    F[2][151] = 05;
  949. >    F[2][152] = 014;
  950. >    F[2][153] = 012;
  951. >    F[2][154] = 011;
  952. >    F[2][155] = 015;
  953. >    F[2][156] = 015;
  954. >    F[2][157] = 013;
  955. >    F[2][158] = 017;
  956. >    F[2][159] = 014;
  957. >    F[2][160] = 011;
  958. >    F[2][161] = 07;
  959. >    F[2][162] = 013;
  960. >    F[2][163] = 01;
  961. >    F[2][164] = 00;
  962. >    F[2][165] = 015;
  963. >    F[2][166] = 011;
  964. >    F[2][167] = 05;
  965. >    F[2][168] = 015;
  966. >    F[2][169] = 016;
  967. >    F[2][170] = 012;
  968. >    F[2][171] = 017;
  969. >    F[2][172] = 01;
  970. >    F[2][173] = 015;
  971. >    F[2][174] = 07;
  972. >    F[2][175] = 012;
  973. >    F[2][176] = 010;
  974. >    F[2][177] = 017;
  975. >    F[2][178] = 07;
  976. >    F[2][179] = 04;
  977. >    F[2][180] = 011;
  978. >    F[2][181] = 013;
  979. >    F[2][182] = 01;
  980. >    F[2][183] = 010;
  981. >    F[2][184] = 06;
  982. >    F[2][185] = 03;
  983. >    F[2][186] = 010;
  984. >    F[2][187] = 02;
  985. >    F[2][188] = 05;
  986. >    F[2][189] = 010;
  987. >    F[2][190] = 011;
  988. >    F[2][191] = 02;
  989. >    F[2][192] = 04;
  990. >    F[2][193] = 017;
  991. >    F[2][194] = 012;
  992. >    F[2][195] = 06;
  993. >    F[2][196] = 05;
  994. >    F[2][197] = 05;
  995. >    F[2][198] = 015;
  996. >    F[2][199] = 012;
  997. >    F[2][200] = 00;
  998. >    F[2][201] = 03;
  999. >    F[2][202] = 04;
  1000. >    F[2][203] = 015;
  1001. >    F[2][204] = 016;
  1002. >    F[2][205] = 015;
  1003. >    F[2][206] = 015;
  1004. >    F[2][207] = 011;
  1005. >    F[2][208] = 03;
  1006. >    F[2][209] = 05;
  1007. >    F[2][210] = 013;
  1008. >    F[2][211] = 016;
  1009. >    F[2][212] = 02;
  1010. >    F[2][213] = 017;
  1011. >    F[2][214] = 013;
  1012. >    F[2][215] = 00;
  1013. >    F[2][216] = 03;
  1014. >    F[2][217] = 012;
  1015. >    F[2][218] = 02;
  1016. >    F[2][219] = 07;
  1017. >    F[2][220] = 03;
  1018. >    F[2][221] = 010;
  1019. >    F[2][222] = 011;
  1020. >    F[2][223] = 01;
  1021. >    F[2][224] = 06;
  1022. >    F[2][225] = 02;
  1023. >    F[2][226] = 014;
  1024. >    F[2][227] = 01;
  1025. >    F[2][228] = 012;
  1026. >    F[2][229] = 010;
  1027. >    F[2][230] = 02;
  1028. >    F[2][231] = 012;
  1029. >    F[2][232] = 013;
  1030. >    F[2][233] = 017;
  1031. >    F[2][234] = 013;
  1032. >    F[2][235] = 014;
  1033. >    F[2][236] = 05;
  1034. >    F[2][237] = 02;
  1035. >    F[2][238] = 02;
  1036. >    F[2][239] = 013;
  1037. >    F[2][240] = 011;
  1038. >    F[2][241] = 013;
  1039. >    F[2][242] = 02;
  1040. >    F[2][243] = 05;
  1041. >    F[2][244] = 014;
  1042. >    F[2][245] = 017;
  1043. >    F[2][246] = 06;
  1044. >    F[2][247] = 015;
  1045. >    F[2][248] = 01;
  1046. >    F[2][249] = 011;
  1047. >    F[2][250] = 012;
  1048. >    F[2][251] = 00;
  1049. >    F[2][252] = 013;
  1050. >    F[2][253] = 05;
  1051. >    F[2][254] = 03;
  1052. >    F[2][255] = 015;
  1053. >    F[3][0] = 013;
  1054. >    F[3][1] = 07;
  1055. >    F[3][2] = 04;
  1056. >    F[3][3] = 01;
  1057. >    F[3][4] = 03;
  1058. >    F[3][5] = 017;
  1059. >    F[3][6] = 07;
  1060. >    F[3][7] = 05;
  1061. >    F[3][8] = 014;
  1062. >    F[3][9] = 02;
  1063. >    F[3][10] = 05;
  1064. >    F[3][11] = 016;
  1065. >    F[3][12] = 013;
  1066. >    F[3][13] = 04;
  1067. >    F[3][14] = 013;
  1068. >    F[3][15] = 01;
  1069. >    F[3][16] = 015;
  1070. >    F[3][17] = 015;
  1071. >    F[3][18] = 014;
  1072. >    F[3][19] = 015;
  1073. >    F[3][20] = 01;
  1074. >    F[3][21] = 010;
  1075. >    F[3][22] = 04;
  1076. >    F[3][23] = 02;
  1077. >    F[3][24] = 07;
  1078. >    F[3][25] = 015;
  1079. >    F[3][26] = 016;
  1080. >    F[3][27] = 016;
  1081. >    F[3][28] = 01;
  1082. >    F[3][29] = 03;
  1083. >    F[3][30] = 011;
  1084. >    F[3][31] = 011;
  1085. >    F[3][32] = 010;
  1086. >    F[3][33] = 017;
  1087. >    F[3][34] = 06;
  1088. >    F[3][35] = 04;
  1089. >    F[3][36] = 013;
  1090. >    F[3][37] = 010;
  1091. >    F[3][38] = 014;
  1092. >    F[3][39] = 013;
  1093. >    F[3][40] = 03;
  1094. >    F[3][41] = 010;
  1095. >    F[3][42] = 015;
  1096. >    F[3][43] = 07;
  1097. >    F[3][44] = 07;
  1098. >    F[3][45] = 00;
  1099. >    F[3][46] = 05;
  1100. >    F[3][47] = 01;
  1101. >    F[3][48] = 03;
  1102. >    F[3][49] = 013;
  1103. >    F[3][50] = 015;
  1104. >    F[3][51] = 04;
  1105. >    F[3][52] = 017;
  1106. >    F[3][53] = 015;
  1107. >    F[3][54] = 03;
  1108. >    F[3][55] = 017;
  1109. >    F[3][56] = 013;
  1110. >    F[3][57] = 03;
  1111. >    F[3][58] = 013;
  1112. >    F[3][59] = 011;
  1113. >    F[3][60] = 00;
  1114. >    F[3][61] = 010;
  1115. >    F[3][62] = 01;
  1116. >    F[3][63] = 07;
  1117. >    F[3][64] = 03;
  1118. >    F[3][65] = 04;
  1119. >    F[3][66] = 04;
  1120. >    F[3][67] = 03;
  1121. >    F[3][68] = 03;
  1122. >    F[3][69] = 010;
  1123. >    F[3][70] = 016;
  1124. >    F[3][71] = 00;
  1125. >    F[3][72] = 01;
  1126. >    F[3][73] = 011;
  1127. >    F[3][74] = 015;
  1128. >    F[3][75] = 02;
  1129. >    F[3][76] = 013;
  1130. >    F[3][77] = 03;
  1131. >    F[3][78] = 07;
  1132. >    F[3][79] = 010;
  1133. >    F[3][80] = 010;
  1134. >    F[3][81] = 07;
  1135. >    F[3][82] = 014;
  1136. >    F[3][83] = 015;
  1137. >    F[3][84] = 013;
  1138. >    F[3][85] = 05;
  1139. >    F[3][86] = 00;
  1140. >    F[3][87] = 012;
  1141. >    F[3][88] = 012;
  1142. >    F[3][89] = 016;
  1143. >    F[3][90] = 07;
  1144. >    F[3][91] = 02;
  1145. >    F[3][92] = 017;
  1146. >    F[3][93] = 06;
  1147. >    F[3][94] = 017;
  1148. >    F[3][95] = 015;
  1149. >    F[3][96] = 013;
  1150. >    F[3][97] = 02;
  1151. >    F[3][98] = 03;
  1152. >    F[3][99] = 013;
  1153. >    F[3][100] = 01;
  1154. >    F[3][101] = 02;
  1155. >    F[3][102] = 017;
  1156. >    F[3][103] = 06;
  1157. >    F[3][104] = 04;
  1158. >    F[3][105] = 07;
  1159. >    F[3][106] = 04;
  1160. >    F[3][107] = 017;
  1161. >    F[3][108] = 03;
  1162. >    F[3][109] = 03;
  1163. >    F[3][110] = 02;
  1164. >    F[3][111] = 00;
  1165. >    F[3][112] = 05;
  1166. >    F[3][113] = 01;
  1167. >    F[3][114] = 00;
  1168. >    F[3][115] = 016;
  1169. >    F[3][116] = 014;
  1170. >    F[3][117] = 05;
  1171. >    F[3][118] = 02;
  1172. >    F[3][119] = 04;
  1173. >    F[3][120] = 07;
  1174. >    F[3][121] = 014;
  1175. >    F[3][122] = 07;
  1176. >    F[3][123] = 012;
  1177. >    F[3][124] = 05;
  1178. >    F[3][125] = 017;
  1179. >    F[3][126] = 011;
  1180. >    F[3][127] = 01;
  1181. >    F[3][128] = 06;
  1182. >    F[3][129] = 00;
  1183. >    F[3][130] = 015;
  1184. >    F[3][131] = 014;
  1185. >    F[3][132] = 017;
  1186. >    F[3][133] = 01;
  1187. >    F[3][134] = 00;
  1188. >    F[3][135] = 04;
  1189. >    F[3][136] = 00;
  1190. >    F[3][137] = 00;
  1191. >    F[3][138] = 011;
  1192. >    F[3][139] = 04;
  1193. >    F[3][140] = 013;
  1194. >    F[3][141] = 012;
  1195. >    F[3][142] = 03;
  1196. >    F[3][143] = 015;
  1197. >    F[3][144] = 01;
  1198. >    F[3][145] = 05;
  1199. >    F[3][146] = 04;
  1200. >    F[3][147] = 02;
  1201. >    F[3][148] = 011;
  1202. >    F[3][149] = 07;
  1203. >    F[3][150] = 00;
  1204. >    F[3][151] = 011;
  1205. >    F[3][152] = 015;
  1206. >    F[3][153] = 011;
  1207. >    F[3][154] = 00;
  1208. >    F[3][155] = 05;
  1209. >    F[3][156] = 07;
  1210. >    F[3][157] = 016;
  1211. >    F[3][158] = 017;
  1212. >    F[3][159] = 02;
  1213. >    F[3][160] = 05;
  1214. >    F[3][161] = 013;
  1215. >    F[3][162] = 06;
  1216. >    F[3][163] = 04;
  1217. >    F[3][164] = 06;
  1218. >    F[3][165] = 01;
  1219. >    F[3][166] = 013;
  1220. >    F[3][167] = 04;
  1221. >    F[3][168] = 06;
  1222. >    F[3][169] = 015;
  1223. >    F[3][170] = 010;
  1224. >    F[3][171] = 012;
  1225. >    F[3][172] = 03;
  1226. >    F[3][173] = 010;
  1227. >    F[3][174] = 017;
  1228. >    F[3][175] = 013;
  1229. >    F[3][176] = 011;
  1230. >    F[3][177] = 010;
  1231. >    F[3][178] = 07;
  1232. >    F[3][179] = 00;
  1233. >    F[3][180] = 014;
  1234. >    F[3][181] = 03;
  1235. >    F[3][182] = 05;
  1236. >    F[3][183] = 00;
  1237. >    F[3][184] = 013;
  1238. >    F[3][185] = 016;
  1239. >    F[3][186] = 013;
  1240. >    F[3][187] = 014;
  1241. >    F[3][188] = 01;
  1242. >    F[3][189] = 02;
  1243. >    F[3][190] = 016;
  1244. >    F[3][191] = 06;
  1245. >    F[3][192] = 012;
  1246. >    F[3][193] = 016;
  1247. >    F[3][194] = 014;
  1248. >    F[3][195] = 03;
  1249. >    F[3][196] = 04;
  1250. >    F[3][197] = 06;
  1251. >    F[3][198] = 00;
  1252. >    F[3][199] = 017;
  1253. >    F[3][200] = 00;
  1254. >    F[3][201] = 014;
  1255. >    F[3][202] = 05;
  1256. >    F[3][203] = 016;
  1257. >    F[3][204] = 01;
  1258. >    F[3][205] = 01;
  1259. >    F[3][206] = 04;
  1260. >    F[3][207] = 03;
  1261. >    F[3][208] = 01;
  1262. >    F[3][209] = 010;
  1263. >    F[3][210] = 00;
  1264. >    F[3][211] = 013;
  1265. >    F[3][212] = 010;
  1266. >    F[3][213] = 03;
  1267. >    F[3][214] = 015;
  1268. >    F[3][215] = 03;
  1269. >    F[3][216] = 07;
  1270. >    F[3][217] = 017;
  1271. >    F[3][218] = 014;
  1272. >    F[3][219] = 012;
  1273. >    F[3][220] = 06;
  1274. >    F[3][221] = 01;
  1275. >    F[3][222] = 01;
  1276. >    F[3][223] = 03;
  1277. >    F[3][224] = 00;
  1278. >    F[3][225] = 06;
  1279. >    F[3][226] = 012;
  1280. >    F[3][227] = 05;
  1281. >    F[3][228] = 05;
  1282. >    F[3][229] = 06;
  1283. >    F[3][230] = 07;
  1284. >    F[3][231] = 010;
  1285. >    F[3][232] = 017;
  1286. >    F[3][233] = 016;
  1287. >    F[3][234] = 01;
  1288. >    F[3][235] = 05;
  1289. >    F[3][236] = 00;
  1290. >    F[3][237] = 016;
  1291. >    F[3][238] = 00;
  1292. >    F[3][239] = 00;
  1293. >    F[3][240] = 014;
  1294. >    F[3][241] = 017;
  1295. >    F[3][242] = 010;
  1296. >    F[3][243] = 00;
  1297. >    F[3][244] = 06;
  1298. >    F[3][245] = 012;
  1299. >    F[3][246] = 011;
  1300. >    F[3][247] = 016;
  1301. >    F[3][248] = 017;
  1302. >    F[3][249] = 017;
  1303. >    F[3][250] = 03;
  1304. >    F[3][251] = 03;
  1305. >    F[3][252] = 014;
  1306. >    F[3][253] = 00;
  1307. >    F[3][254] = 015;
  1308. >    F[3][255] = 017;
  1309. >    /* PSEUDO-LINEAR (G0, G1) */
  1310. >    G[0][0] = 00;
  1311. >    G[0][1] = 00;
  1312. >    G[0][2] = 01;
  1313. >    G[0][3] = 01;
  1314. >    G[0][4] = 00;
  1315. >    G[0][5] = 01;
  1316. >    G[0][6] = 01;
  1317. >    G[0][7] = 00;
  1318. >    G[0][8] = 00;
  1319. >    G[0][9] = 01;
  1320. >    G[0][10] = 00;
  1321. >    G[0][11] = 00;
  1322. >    G[0][12] = 01;
  1323. >    G[0][13] = 01;
  1324. >    G[0][14] = 00;
  1325. >    G[0][15] = 01;
  1326. >    G[0][16] = 01;
  1327. >    G[0][17] = 00;
  1328. >    G[0][18] = 00;
  1329. >    G[0][19] = 01;
  1330. >    G[0][20] = 00;
  1331. >    G[0][21] = 00;
  1332. >    G[0][22] = 01;
  1333. >    G[0][23] = 01;
  1334. >    G[0][24] = 00;
  1335. >    G[0][25] = 01;
  1336. >    G[0][26] = 01;
  1337. >    G[0][27] = 00;
  1338. >    G[0][28] = 00;
  1339. >    G[0][29] = 01;
  1340. >    G[0][30] = 00;
  1341. >    G[0][31] = 00;
  1342. >    G[0][32] = 01;
  1343. >    G[0][33] = 01;
  1344. >    G[0][34] = 00;
  1345. >    G[0][35] = 01;
  1346. >    G[0][36] = 01;
  1347. >    G[0][37] = 00;
  1348. >    G[0][38] = 00;
  1349. >    G[0][39] = 01;
  1350. >    G[0][40] = 00;
  1351. >    G[0][41] = 00;
  1352. >    G[0][42] = 01;
  1353. >    G[0][43] = 01;
  1354. >    G[0][44] = 00;
  1355. >    G[0][45] = 01;
  1356. >    G[0][46] = 01;
  1357. >    G[0][47] = 00;
  1358. >    G[0][48] = 00;
  1359. >    G[0][49] = 01;
  1360. >    G[0][50] = 00;
  1361. >    G[0][51] = 00;
  1362. >    G[0][52] = 01;
  1363. >    G[0][53] = 01;
  1364. >    G[0][54] = 00;
  1365. >    G[0][55] = 01;
  1366. >    G[0][56] = 01;
  1367. >    G[0][57] = 00;
  1368. >    G[0][58] = 00;
  1369. >    G[0][59] = 01;
  1370. >    G[0][60] = 00;
  1371. >    G[0][61] = 00;
  1372. >    G[0][62] = 01;
  1373. >    G[0][63] = 01;
  1374. >    G[0][64] = 00;
  1375. >    G[0][65] = 01;
  1376. >    G[0][66] = 01;
  1377. >    G[0][67] = 00;
  1378. >    G[0][68] = 00;
  1379. >    G[0][69] = 01;
  1380. >    G[0][70] = 00;
  1381. >    G[0][71] = 00;
  1382. >    G[0][72] = 01;
  1383. >    G[0][73] = 01;
  1384. >    G[0][74] = 00;
  1385. >    G[0][75] = 01;
  1386. >    G[0][76] = 01;
  1387. >    G[0][77] = 00;
  1388. >    G[0][78] = 00;
  1389. >    G[0][79] = 01;
  1390. >    G[0][80] = 00;
  1391. >    G[0][81] = 00;
  1392. >    G[0][82] = 01;
  1393. >    G[0][83] = 01;
  1394. >    G[0][84] = 00;
  1395. >    G[0][85] = 01;
  1396. >    G[0][86] = 01;
  1397. >    G[0][87] = 00;
  1398. >    G[0][88] = 00;
  1399. >    G[0][89] = 01;
  1400. >    G[0][90] = 00;
  1401. >    G[0][91] = 00;
  1402. >    G[0][92] = 01;
  1403. >    G[0][93] = 01;
  1404. >    G[0][94] = 00;
  1405. >    G[0][95] = 01;
  1406. >    G[0][96] = 01;
  1407. >    G[0][97] = 00;
  1408. >    G[0][98] = 00;
  1409. >    G[0][99] = 01;
  1410. >    G[0][100] = 00;
  1411. >    G[0][101] = 00;
  1412. >    G[0][102] = 01;
  1413. >    G[0][103] = 01;
  1414. >    G[0][104] = 00;
  1415. >    G[0][105] = 01;
  1416. >    G[0][106] = 01;
  1417. >    G[0][107] = 00;
  1418. >    G[0][108] = 00;
  1419. >    G[0][109] = 01;
  1420. >    G[0][110] = 00;
  1421. >    G[0][111] = 00;
  1422. >    G[0][112] = 01;
  1423. >    G[0][113] = 01;
  1424. >    G[0][114] = 00;
  1425. >    G[0][115] = 01;
  1426. >    G[0][116] = 01;
  1427. >    G[0][117] = 00;
  1428. >    G[0][118] = 00;
  1429. >    G[0][119] = 01;
  1430. >    G[0][120] = 00;
  1431. >    G[0][121] = 00;
  1432. >    G[0][122] = 01;
  1433. >    G[0][123] = 01;
  1434. >    G[0][124] = 00;
  1435. >    G[0][125] = 01;
  1436. >    G[0][126] = 01;
  1437. >    G[0][127] = 00;
  1438. >    G[0][128] = 00;
  1439. >    G[0][129] = 01;
  1440. >    G[0][130] = 00;
  1441. >    G[0][131] = 00;
  1442. >    G[0][132] = 01;
  1443. >    G[0][133] = 01;
  1444. >    G[0][134] = 00;
  1445. >    G[0][135] = 01;
  1446. >    G[0][136] = 01;
  1447. >    G[0][137] = 00;
  1448. >    G[0][138] = 00;
  1449. >    G[0][139] = 01;
  1450. >    G[0][140] = 00;
  1451. >    G[0][141] = 00;
  1452. >    G[0][142] = 01;
  1453. >    G[0][143] = 01;
  1454. >    G[0][144] = 00;
  1455. >    G[0][145] = 01;
  1456. >    G[0][146] = 01;
  1457. >    G[0][147] = 00;
  1458. >    G[0][148] = 00;
  1459. >    G[0][149] = 01;
  1460. >    G[0][150] = 00;
  1461. >    G[0][151] = 00;
  1462. >    G[0][152] = 01;
  1463. >    G[0][153] = 01;
  1464. >    G[0][154] = 00;
  1465. >    G[0][155] = 01;
  1466. >    G[0][156] = 01;
  1467. >    G[0][157] = 00;
  1468. >    G[0][158] = 00;
  1469. >    G[0][159] = 01;
  1470. >    G[0][160] = 00;
  1471. >    G[0][161] = 00;
  1472. >    G[0][162] = 01;
  1473. >    G[0][163] = 01;
  1474. >    G[0][164] = 00;
  1475. >    G[0][165] = 01;
  1476. >    G[0][166] = 01;
  1477. >    G[0][167] = 00;
  1478. >    G[0][168] = 00;
  1479. >    G[0][169] = 01;
  1480. >    G[0][170] = 00;
  1481. >    G[0][171] = 00;
  1482. >    G[0][172] = 01;
  1483. >    G[0][173] = 01;
  1484. >    G[0][174] = 00;
  1485. >    G[0][175] = 01;
  1486. >    G[0][176] = 01;
  1487. >    G[0][177] = 00;
  1488. >    G[0][178] = 00;
  1489. >    G[0][179] = 01;
  1490. >    G[0][180] = 00;
  1491. >    G[0][181] = 00;
  1492. >    G[0][182] = 01;
  1493. >    G[0][183] = 01;
  1494. >    G[0][184] = 00;
  1495. >    G[0][185] = 01;
  1496. >    G[0][186] = 01;
  1497. >    G[0][187] = 00;
  1498. >    G[0][188] = 00;
  1499. >    G[0][189] = 01;
  1500. >    G[0][190] = 00;
  1501. >    G[0][191] = 00;
  1502. >    G[0][192] = 01;
  1503. >    G[0][193] = 01;
  1504. >    G[0][194] = 00;
  1505. >    G[0][195] = 01;
  1506. >    G[0][196] = 01;
  1507. >    G[0][197] = 00;
  1508. >    G[0][198] = 00;
  1509. >    G[0][199] = 01;
  1510. >    G[0][200] = 00;
  1511. >    G[0][201] = 00;
  1512. >    G[0][202] = 01;
  1513. >    G[0][203] = 01;
  1514. >    G[0][204] = 00;
  1515. >    G[0][205] = 01;
  1516. >    G[0][206] = 01;
  1517. >    G[0][207] = 00;
  1518. >    G[0][208] = 00;
  1519. >    G[0][209] = 01;
  1520. >    G[0][210] = 00;
  1521. >    G[0][211] = 00;
  1522. >    G[0][212] = 01;
  1523. >    G[0][213] = 01;
  1524. >    G[0][214] = 00;
  1525. >    G[0][215] = 01;
  1526. >    G[0][216] = 01;
  1527. >    G[0][217] = 00;
  1528. >    G[0][218] = 00;
  1529. >    G[0][219] = 01;
  1530. >    G[0][220] = 00;
  1531. >    G[0][221] = 00;
  1532. >    G[0][222] = 01;
  1533. >    G[0][223] = 01;
  1534. >    G[0][224] = 00;
  1535. >    G[0][225] = 01;
  1536. >    G[0][226] = 01;
  1537. >    G[0][227] = 00;
  1538. >    G[0][228] = 00;
  1539. >    G[0][229] = 01;
  1540. >    G[0][230] = 00;
  1541. >    G[0][231] = 00;
  1542. >    G[0][232] = 01;
  1543. >    G[0][233] = 01;
  1544. >    G[0][234] = 00;
  1545. >    G[0][235] = 01;
  1546. >    G[0][236] = 01;
  1547. >    G[0][237] = 00;
  1548. >    G[0][238] = 00;
  1549. >    G[0][239] = 01;
  1550. >    G[0][240] = 00;
  1551. >    G[0][241] = 00;
  1552. >    G[0][242] = 01;
  1553. >    G[0][243] = 01;
  1554. >    G[0][244] = 00;
  1555. >    G[0][245] = 01;
  1556. >    G[0][246] = 01;
  1557. >    G[0][247] = 00;
  1558. >    G[0][248] = 00;
  1559. >    G[0][249] = 01;
  1560. >    G[0][250] = 00;
  1561. >    G[0][251] = 00;
  1562. >    G[0][252] = 01;
  1563. >    G[0][253] = 01;
  1564. >    G[0][254] = 00;
  1565. >    G[0][255] = 01;
  1566. >    G[1][0] = 00;
  1567. >    G[1][1] = 01;
  1568. >    G[1][2] = 01;
  1569. >    G[1][3] = 00;
  1570. >    G[1][4] = 01;
  1571. >    G[1][5] = 00;
  1572. >    G[1][6] = 00;
  1573. >    G[1][7] = 01;
  1574. >    G[1][8] = 00;
  1575. >    G[1][9] = 01;
  1576. >    G[1][10] = 01;
  1577. >    G[1][11] = 00;
  1578. >    G[1][12] = 01;
  1579. >    G[1][13] = 00;
  1580. >    G[1][14] = 00;
  1581. >    G[1][15] = 01;
  1582. >    G[1][16] = 01;
  1583. >    G[1][17] = 00;
  1584. >    G[1][18] = 00;
  1585. >    G[1][19] = 01;
  1586. >    G[1][20] = 00;
  1587. >    G[1][21] = 01;
  1588. >    G[1][22] = 01;
  1589. >    G[1][23] = 00;
  1590. >    G[1][24] = 01;
  1591. >    G[1][25] = 00;
  1592. >    G[1][26] = 00;
  1593. >    G[1][27] = 01;
  1594. >    G[1][28] = 00;
  1595. >    G[1][29] = 01;
  1596. >    G[1][30] = 01;
  1597. >    G[1][31] = 00;
  1598. >    G[1][32] = 00;
  1599. >    G[1][33] = 01;
  1600. >    G[1][34] = 01;
  1601. >    G[1][35] = 00;
  1602. >    G[1][36] = 01;
  1603. >    G[1][37] = 00;
  1604. >    G[1][38] = 00;
  1605. >    G[1][39] = 01;
  1606. >    G[1][40] = 00;
  1607. >    G[1][41] = 01;
  1608. >    G[1][42] = 01;
  1609. >    G[1][43] = 00;
  1610. >    G[1][44] = 01;
  1611. >    G[1][45] = 00;
  1612. >    G[1][46] = 00;
  1613. >    G[1][47] = 01;
  1614. >    G[1][48] = 01;
  1615. >    G[1][49] = 00;
  1616. >    G[1][50] = 00;
  1617. >    G[1][51] = 01;
  1618. >    G[1][52] = 00;
  1619. >    G[1][53] = 01;
  1620. >    G[1][54] = 01;
  1621. >    G[1][55] = 00;
  1622. >    G[1][56] = 01;
  1623. >    G[1][57] = 00;
  1624. >    G[1][58] = 00;
  1625. >    G[1][59] = 01;
  1626. >    G[1][60] = 00;
  1627. >    G[1][61] = 01;
  1628. >    G[1][62] = 01;
  1629. >    G[1][63] = 00;
  1630. >    G[1][64] = 00;
  1631. >    G[1][65] = 01;
  1632. >    G[1][66] = 01;
  1633. >    G[1][67] = 00;
  1634. >    G[1][68] = 01;
  1635. >    G[1][69] = 00;
  1636. >    G[1][70] = 00;
  1637. >    G[1][71] = 01;
  1638. >    G[1][72] = 00;
  1639. >    G[1][73] = 01;
  1640. >    G[1][74] = 01;
  1641. >    G[1][75] = 00;
  1642. >    G[1][76] = 01;
  1643. >    G[1][77] = 00;
  1644. >    G[1][78] = 00;
  1645. >    G[1][79] = 01;
  1646. >    G[1][80] = 01;
  1647. >    G[1][81] = 00;
  1648. >    G[1][82] = 00;
  1649. >    G[1][83] = 01;
  1650. >    G[1][84] = 00;
  1651. >    G[1][85] = 01;
  1652. >    G[1][86] = 01;
  1653. >    G[1][87] = 00;
  1654. >    G[1][88] = 01;
  1655. >    G[1][89] = 00;
  1656. >    G[1][90] = 00;
  1657. >    G[1][91] = 01;
  1658. >    G[1][92] = 00;
  1659. >    G[1][93] = 01;
  1660. >    G[1][94] = 01;
  1661. >    G[1][95] = 00;
  1662. >    G[1][96] = 00;
  1663. >    G[1][97] = 01;
  1664. >    G[1][98] = 01;
  1665. >    G[1][99] = 00;
  1666. >    G[1][100] = 01;
  1667. >    G[1][101] = 00;
  1668. >    G[1][102] = 00;
  1669. >    G[1][103] = 01;
  1670. >    G[1][104] = 00;
  1671. >    G[1][105] = 01;
  1672. >    G[1][106] = 01;
  1673. >    G[1][107] = 00;
  1674. >    G[1][108] = 01;
  1675. >    G[1][109] = 00;
  1676. >    G[1][110] = 00;
  1677. >    G[1][111] = 01;
  1678. >    G[1][112] = 01;
  1679. >    G[1][113] = 00;
  1680. >    G[1][114] = 00;
  1681. >    G[1][115] = 01;
  1682. >    G[1][116] = 00;
  1683. >    G[1][117] = 01;
  1684. >    G[1][118] = 01;
  1685. >    G[1][119] = 00;
  1686. >    G[1][120] = 01;
  1687. >    G[1][121] = 00;
  1688. >    G[1][122] = 00;
  1689. >    G[1][123] = 01;
  1690. >    G[1][124] = 00;
  1691. >    G[1][125] = 01;
  1692. >    G[1][126] = 01;
  1693. >    G[1][127] = 00;
  1694. >    G[1][128] = 00;
  1695. >    G[1][129] = 01;
  1696. >    G[1][130] = 01;
  1697. >    G[1][131] = 00;
  1698. >    G[1][132] = 01;
  1699. >    G[1][133] = 00;
  1700. >    G[1][134] = 00;
  1701. >    G[1][135] = 01;
  1702. >    G[1][136] = 00;
  1703. >    G[1][137] = 01;
  1704. >    G[1][138] = 01;
  1705. >    G[1][139] = 00;
  1706. >    G[1][140] = 01;
  1707. >    G[1][141] = 00;
  1708. >    G[1][142] = 00;
  1709. >    G[1][143] = 01;
  1710. >    G[1][144] = 01;
  1711. >    G[1][145] = 00;
  1712. >    G[1][146] = 00;
  1713. >    G[1][147] = 01;
  1714. >    G[1][148] = 00;
  1715. >    G[1][149] = 01;
  1716. >    G[1][150] = 01;
  1717. >    G[1][151] = 00;
  1718. >    G[1][152] = 01;
  1719. >    G[1][153] = 00;
  1720. >    G[1][154] = 00;
  1721. >    G[1][155] = 01;
  1722. >    G[1][156] = 00;
  1723. >    G[1][157] = 01;
  1724. >    G[1][158] = 01;
  1725. >    G[1][159] = 00;
  1726. >    G[1][160] = 00;
  1727. >    G[1][161] = 01;
  1728. >    G[1][162] = 01;
  1729. >    G[1][163] = 00;
  1730. >    G[1][164] = 01;
  1731. >    G[1][165] = 00;
  1732. >    G[1][166] = 00;
  1733. >    G[1][167] = 01;
  1734. >    G[1][168] = 00;
  1735. >    G[1][169] = 01;
  1736. >    G[1][170] = 01;
  1737. >    G[1][171] = 00;
  1738. >    G[1][172] = 01;
  1739. >    G[1][173] = 00;
  1740. >    G[1][174] = 00;
  1741. >    G[1][175] = 01;
  1742. >    G[1][176] = 01;
  1743. >    G[1][177] = 00;
  1744. >    G[1][178] = 00;
  1745. >    G[1][179] = 01;
  1746. >    G[1][180] = 00;
  1747. >    G[1][181] = 01;
  1748. >    G[1][182] = 01;
  1749. >    G[1][183] = 00;
  1750. >    G[1][184] = 01;
  1751. >    G[1][185] = 00;
  1752. >    G[1][186] = 00;
  1753. >    G[1][187] = 01;
  1754. >    G[1][188] = 00;
  1755. >    G[1][189] = 01;
  1756. >    G[1][190] = 01;
  1757. >    G[1][191] = 00;
  1758. >    G[1][192] = 00;
  1759. >    G[1][193] = 01;
  1760. >    G[1][194] = 01;
  1761. >    G[1][195] = 00;
  1762. >    G[1][196] = 01;
  1763. >    G[1][197] = 00;
  1764. >    G[1][198] = 00;
  1765. >    G[1][199] = 01;
  1766. >    G[1][200] = 00;
  1767. >    G[1][201] = 01;
  1768. >    G[1][202] = 01;
  1769. >    G[1][203] = 00;
  1770. >    G[1][204] = 01;
  1771. >    G[1][205] = 00;
  1772. >    G[1][206] = 00;
  1773. >    G[1][207] = 01;
  1774. >    G[1][208] = 01;
  1775. >    G[1][209] = 00;
  1776. >    G[1][210] = 00;
  1777. >    G[1][211] = 01;
  1778. >    G[1][212] = 00;
  1779. >    G[1][213] = 01;
  1780. >    G[1][214] = 01;
  1781. >    G[1][215] = 00;
  1782. >    G[1][216] = 01;
  1783. >    G[1][217] = 00;
  1784. >    G[1][218] = 00;
  1785. >    G[1][219] = 01;
  1786. >    G[1][220] = 00;
  1787. >    G[1][221] = 01;
  1788. >    G[1][222] = 01;
  1789. >    G[1][223] = 00;
  1790. >    G[1][224] = 00;
  1791. >    G[1][225] = 01;
  1792. >    G[1][226] = 01;
  1793. >    G[1][227] = 00;
  1794. >    G[1][228] = 01;
  1795. >    G[1][229] = 00;
  1796. >    G[1][230] = 00;
  1797. >    G[1][231] = 01;
  1798. >    G[1][232] = 00;
  1799. >    G[1][233] = 01;
  1800. >    G[1][234] = 01;
  1801. >    G[1][235] = 00;
  1802. >    G[1][236] = 01;
  1803. >    G[1][237] = 00;
  1804. >    G[1][238] = 00;
  1805. >    G[1][239] = 01;
  1806. >    G[1][240] = 01;
  1807. >    G[1][241] = 00;
  1808. >    G[1][242] = 00;
  1809. >    G[1][243] = 01;
  1810. >    G[1][244] = 00;
  1811. >    G[1][245] = 01;
  1812. >    G[1][246] = 01;
  1813. >    G[1][247] = 00;
  1814. >    G[1][248] = 01;
  1815. >    G[1][249] = 00;
  1816. >    G[1][250] = 00;
  1817. >    G[1][251] = 01;
  1818. >    G[1][252] = 00;
  1819. >    G[1][253] = 01;
  1820. >    G[1][254] = 01;
  1821. >    G[1][255] = 00;
  1822. >}
  1823.  
  1824.  
  1825. >static u_char f(int table, int value)
  1826. >{
  1827. >    if ((table<0) || (table>3) || (value<0) || (value>255)) {
  1828. >        fprintf(stderr,"\n\nF TABLE EXCEPTION %x %x\n\n",table,value);
  1829. >        exit(1001);
  1830. >    }
  1831. >    return F[table][value];
  1832. >}
  1833.  
  1834.  
  1835. >static u_char g(int table, int value)
  1836. >{
  1837. >    if ((table<0) || (table>2) || (value<0) || (value>255)) {
  1838. >        fprintf(stderr,"\n\nG TABLE EXCEPTION %x %x\n\n",table,value);
  1839. >        exit(1001);
  1840. >    }
  1841. >    return G[table][value];
  1842. >}
  1843.  
  1844.  
  1845. >/* TOP SECRET                                                    */
  1846. >/* See label file for codeword restrictions                      */
  1847.  
  1848.